package com.xoms.front.persist.dao;

import java.util.List;

import com.xoms.front.model.ProductBean;
import com.xoms.front.model.vo.ProductDetailBean;
import com.xoms.front.model.vo.TreeNodeBean;

public interface ProductDao {

	/**
	 * 获取商品数量
	 * 
	 * @param key
	 * @param cid
	 * @param type
	 * @return
	 */
	int selectCount(String key, String cid, String type);

	/**
	 * 获取商品列表
	 * 
	 * @param key
	 * @param isPage
	 *            是否分页
	 * @param page
	 * @param pagesize
	 * @param cid
	 * @param type
	 * @return
	 */
	List<ProductBean> selectList(String key, boolean isPage, int page, int pagesize, String cid, String type);

	/**
	 * 根据名称判断商品是否存在
	 * 
	 * @param name
	 * @return
	 */
	int selectProCountByName(String name);

	/**
	 * 根据id获取商品信息
	 * 
	 * @param pid
	 * @return
	 */
	ProductDetailBean selectOneById(String pid);

	/**
	 * 获取商品组合数量
	 * 
	 * @param key
	 * @param productId
	 * @return
	 */
	int selectGroupCount(String productId);

	/**
	 * 根据名称或条形码查询商品数量
	 * 
	 * @param name
	 * @param productBar
	 * @return
	 */
	int selectProCountByNameBar(String name, String productBar);

	/**
	 * 根据名称或条形码查询商品
	 * 
	 * @param name
	 * @param productBar
	 * @return
	 */
	List<ProductBean> selectProductByNameBar(String name, String productBar);

	/**
	 * 查询条形码对应商品数量
	 * 
	 * @param productBar
	 * @return
	 */
	int selectCountByProBar(String productBar);

	/**
	 * 获取最大商品编号
	 * 
	 * @return
	 */
	String selectMaxProNo();

	/**
	 * 获取当前在售商品
	 * 
	 * @return
	 */
	List<TreeNodeBean> selectSellProducts();

	/**
	 * 根据分类获取商品列表
	 * 
	 * @param type
	 * @return
	 */
	List<TreeNodeBean> selectSelectProducts(int type);

	/**
	 * 查询柜台下的商品列表
	 * 
	 * @param isPage
	 *            是否分页
	 * @param page
	 * @param pagesize
	 * @param cid
	 * @param type
	 * @param storeHouseId
	 *            仓库库房id
	 * @param proStatus
	 *            当前状态：1在售 0下架
	 * @return
	 */
	List<ProductBean> selectListByStoreHouseId(String key, boolean isPage, int page, int pagesize, String cid,
			String type, String storeHouseId, Integer proStatus);

	/**
	 * 通过pids 查询产品信息
	 * 
	 * @param pids
	 * @return
	 */
	List<ProductBean> selectListByPids(List<String> pids);

}
